package com.ruoyi.iot.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 规则触发器对象 iot_rules_trigger
 *
 * @author ruoyi
 * @date 2025-03-28
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class IotRulesTrigger extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 触发器ID
     */
    private Long triggerId;

    /**
     * 规则ID
     */
    @Excel(name = "规则ID")
    private Long ruleId;

    /**
     * 触发器条件(and：全部；or:任意一个)
     */
    @Excel(name = "触发器条件(and：全部；or:任意一个)")
    private String triggerCondition;

    /**
     * 是否抑制（0：是；1：否）
     */
    @Excel(name = "是否抑制", readConverterExp = "1：是；0：否")
    private String isRestrain;

    /**
     * 数据时效（单位S）
     */
    @Excel(name = "数据时效", readConverterExp = "单位S")
    private Long dataTime;

    /**
     * 重复次数
     */
    @Excel(name = "重复次数")
    private Long repeatNum;

    /**
     * 间隔时间（单位：分钟）
     */
    @Excel(name = "间隔时间", readConverterExp = "单位：分钟")
    private Long intervalTime;

    /**
     * 触发项类型（property：属性触发；event：事件触发；online：设备上下线）
     */
    @Excel(name = "触发项类型", readConverterExp = "p=roperty：属性触发；event：事件触发；online：设备上下线")
        private String termType;

    /**
     * 下次执行时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次执行时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastTime;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;


    /**
     * 触发项
     */
    @TableField(exist = false)
    private List<IotRulesTriggerTerm> triggerTerms;



}
